home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
scope
/
026-050
/
scopedisk26
/
cocomm5
/
shortdox
< prev
next >
Wrap
Text File
|
1995-03-18
|
62KB
|
1,262 lines
***********************************************************************
************** ***************
************** This file refers to CoComm Revision 5.00 ***************
************** ***************
***********************************************************************
Please note that speech, highlighting, and many other features are only
designed to operate when you are in AI CO Mode. When not in co, they
are disabled.
YOU NEED A LOT OF STACK FOR COCOMM - 20K MINIMUM!!!! OR GURU!!!!!
You should NOT try to initiate Ai Co mode unless you are in Co on CIS.
If you do, CoComm will "hang" until you press a ^C character, at which
time it will abort the Ai Co request.
Ai Co mode precedes EVERY line with ^U, ^H, ^H, ^H, ^H - if you try and
run Ai Co mode anywhere BUT in CIS co areas, you'll confuse the HECk out
of whatever host you are trying to communicate with!
IMPORTANT: For CIS communications, use 8 bits, 1 stop bit, no parity.
Memory requirements:
CoComm needs about 316k if the Narrator and Translator libraries
are NOT available; If it loads them, it needs about 353k to run.
See list at the end of this file for change information for this version
***********************************************************************
!!! NOTE !!!
Many people experience difficulty using CoComm's function keys, due to
the program's using many of the non-alphanumeric keys as meta keys.
For SIMPLE use of the function keys, follow these rules:
Use the '^' character to create a control character: IE: ^C
Use the '|' character to send a newline;
Enclose normal text within two " quote characters.
^X"TextToSend"|
Hope this helps end some of the confusion! CBB Feb/14/88
***********************************************************************
***********************************************************************
There is a formal manual for CoComm; it is currently
over 30 pages in length, and addresses every feature
in CoComm. It is constantly being updated, just like
the program itself, and is well worth $15.00 - which
is the shareware contribution asked for CoComm, when
and if you decide you want to use it. Please, if you
can, do make the shareware payment; If we see that a
shareware project can be made to work, we will enter
into more of these efforts - some that would be made
as commercial products otherwise. Shareware is a new
direction for SoftCircuits, and if it works out, you
will gain by it. CBB, for SoftCircuits, January 1988
***********************************************************************
***********************************************************************
Beginning with 4.00, CoComm is compiled with Lattice 4.0 C.
This compiler is a SIGNIFICANT departure from the 3.1 version
that was previously used to generate CoComm; please report any
problems with CoComm's operation immediately To Ben Blish on
CIS AmigaForum. Thank you.
***********************************************************************
***********************************************************************
To setup CoComm, do the following.
FIRST:
{
exec exec.me
}
NEXT:
{
Put coco in a workbench drawer that you wish to run it from.
'cd' to that drawer (directory)
makedir ConfigLib
makedir CaptureLib
move all .def files to ConfigLib
move all .Config files to ConfigLib
doubleclick on the coco icon;
after startup, point mouse at Phone Book gadget and click on it
after Phone Book opens, select Projects/Keydefs from menus
change the phone#, userid#, and password to YOURS, leave quotes!
close keydefs window w/close gadget
select Projects/Configure/File Cnf
click on the '>' gadget next to the 'Phone" entry in file list
click on SAVE gadget. CoComm should now be able to call CIS.
}
You can also use cocomm from the CLI; however, using this set
of example functions, you MUST have the directories created as
specified above, and you MUST 'cd' to the directory that CoComm is
in before typing "CoCo" that starts the show.
You can change the macro keys to make CoComm run using all of it's
data files from s:, or anywhere else - however be advised that if
CoComm cannot find the configlib dir or drawer, it looks in s: for
it's "default.config" file - so at least that will HAVE to be in
s: Once started, the default file itself will point cocomm to the
correct place where the configs are to be found.
***********************************************************************
Some things you might like to know:
When you download a new Version of CoComm, it's handy to use the
def.config file supplied in the ARC to build your own default.config
file again; This prevents any differences in .config file type from
causing you any confusion. If you wish to use your previous file, then
make SURE you check ALL of the prefs entries, and ALL of the locator
entries to be sure they're ok. If they are not, things can get.... well,
funny.
The best proceedure to follow is to move the new CoComm where you want
it to reside - probably where the last one was. Then start it, either
using run, or by clicking on it's icon... It will find your old
default.config file, and use it to set itself up. Chech the preferences
window - make sure that all the new items (assuming there are any) are
set as you prefer them to be, then close the prefs window and save a
new default.config file.
CoComm is uploaded with itself. Make of that what you will. <grin>
You can close the following windows by pressing the ESC key, if you are
NOT entering text into a string gadget at the time, and the window is
active (selected):
The /sen manager window;
The Locator window;
The Review Buffer window;
In this window, the up-cursor and down-cursor keys will scroll
the contents just like the arrow gadgets
The Macro Keys window;
Be careful - if you have a cursor in a text gadget, and you
press the ESC key, then the ESC character will be entered into
that text gadget instead of closing the window!
The Prefs window;
The configure files save the following information:
The main windows size (only used on startup)
The main windows position (also only used at startup)
The Chat windows size (also)
The Chat windows position (startup only)
The review buffer size (startup only, and only if the review buffer...
The review buffer position(...is open when saving the default.config file!)
chat status - on or off.
all of the names and ppn's in the locator window
The baud rate (Only used at startup)
parity (Only used at startup)
word length (Only used at startup)
stop bits (Only used at startup)
the palette colors used when cocomm is operating
Highlight pen choices for:
sen's
system msgs
normal co message name
normal co message contents
brackets around co message name
Preferences; Your name
Review buffer controls
Chat window status (on or off)
the path to look for capture files
the path to look for config files
the extension to look for on capture files
the character position where the auto word-wrap activates
your word-wrap trailer string
your hard c/r trailer string
Custom screen option
Interlaced custom screen option
underline, boldface, and italics settings
If the program cannot find it's startup file, it will setup some
simple defaults. The first thing you should do is change all the
settings to ones you approve of, and then save a file called
"default.config" either in the ConfigLib subdirectory or in your
s: assign. Cocomm initially looks in a directory called ConfigLib,
if it can find it. Then it looks in the system assign 's:', so if
you have default.config files in both places, it will use the one
in ConfigLib, rather than the one in s:.
Function keys are not buffered - this means that you can set them
up with things like *"o/u co"| for a status report, and press the key
even though you're in the middle of a line in the chat window... it
won't disturb you, and the status report will come up in the log window.
In the config file supplied with this ARC, you will find comments in each
of the function keys. To read them, open the function key window using
either Right/Amiga/K or the menu entry, click in each key text area in
turn, and scroll the text using the left and right cursor keys. Then study
this section to learn how each key is programmed.
In a function key definition, you can use the following special
characters:
^char - generate a control character out serial port
| - generate a c/r out serial port
` - rest of function key is ignored
~ - wait for about 1 second
>nn"xxx" - start key 'nn' after 'xxx' tenths of a second
< - abort '>' key timer
("AnnSTRING" - watch for STRING, use register 'A', if found start key 'nn'
)nn - stop watching with register 'nn'
@"filespec" - open capture on file 'filespec'
@"" - close capture
*"yxSTRING" - send STRING to 'x' (s)peech, (w)indow, (o)utserial, (p)rint
\nn"path/file" - load new config as 'path/file'.CONFIG start key 'nn'
["filespec" - initialize user gadget window using 'filespec'
{ - open user gadget window
} - close user gadget window
]"DWPSBBBb" - set (D)uplex, (W)ordlength, (P)arity, (S)topbits, (B)audrate
=ESCarexx macro nameESC executes external ARexx script file
=ESC"arexx commands"ESC executes arexx commands directly
=A - Ai Co Mode On
=B - Buffered Chat window On
=C - Close Chat window
=D - Disable Ai Co Mode
=E - Emit chat buffer contents
=F - Flash screen
=Q - Quit CoComm
=R - Review Buffer to Front
=S - Workbench Screen to Front
=U - Update /sen list
=W - CoComm Windows to Front (activated)
?"commandline" - Execute DOS command (with I/o to/from nil:)
+"xxx"yyy" - BEEP at tone 'xxx' for time 'yyy'
&"filespec" - send file 'filespec' (halt w/ ^C)
$x - emit next char as normal char instead of execute function
:r+ - increment numeric control register 'r'
:r- - decrement numeric control register 'r'
:r0 - clear numeric control register 'r'
:rLn - (L)oad register 'r' with value 'n'
#nn - jump to key 'nn'
#:xnn - jump to key 'nn' if numeric register 'x' EQUAL 0
#;xnn - jump to key 'nn' if numeric register 'x' NOT EQUAL 0
#>xnn - jump to key 'nn' if numeric register 'x' GREATER THAN 0
#<xnn - jump to key 'nn' if numeric register 'x' LESS THAN 0
!nn - call key 'nn' (then return into current key)
!:xnn - call key 'nn' if numeric register 'x' EQUAL 0
!;xnn - call key 'nn' if numeric register 'x' NOT EQUAL 0
!>xnn - call key 'nn' if numeric register 'x' GREATER THAN 0
!<xnn - call key 'nn' if numeric register 'x' LESS THAN 0
;nn"1"2"P"N" - requester: key(nn), line(1), line(2), (P)ostext, (N)egtext
%"xSTRING"ttt" - wait time 'ttt' for STRING, match=continue, else do 'x'
"STRING" - sends quoted string to serial output.
**** DETAILED INFO ON MACRO FUNCTIONS: ****
"STRING" - send the string in quotes to the serial output channel. You can
send any normal text character within the quotes EXCEPT
a quotation mark itself. If you MUST send a quotation mark,
for instance lets say you have to send the following string:
This is a "test" string
You will have to use the '$' escape character to do it, like
this:
"This is a "$""test"$"" string"
notice that the escape character must occur OUTSIDE of the
quotes enclosing the normal text; there were FIVE elements
to that macro item;
1 "This is a "
2 $"
3 "test"
4 $"
5 " string"
"^" - this means the next char is a control char. IE: ^H for a backspace.
"|" - this is a newline... just like hitting return.
"`" - this means EVERYTHING after this char is ignored; a comment.
"~" - this causes a short delay.
">" - This starts the function key timer. You can start any funtion
key with the timer; Syntax is: >nn"x" where nn is the function
key number and x is the time, which is a positive number which
may be 1 through 99999 - each unit is 1/10th of a second. If you
wish to disable the timer, use the "<" function, described next.
When the timer times out (If it does) the function key specified
will be started. This timer has a range of over 27 hours.
"<" - This stops the function key timer; it will not time out, and the
function key specified in the ">" statement will NOT be executed.
"(" - this "SETs" a watch string. Syntax is:
("AnnSTRING"
A = 1 character, A-Z, upper or lowercase: a match register.
nn = 2 digits, 01-20: a macro key number.
STRING = ASCII: a text string.
Once set, until you execute an UNSET (see next item) for
this watch string, EVERY time this string is encountered,
except during file transfers, the specified function key
will be invoked. There are 26 watch strings, 1 for each
letter of the alphabet.
IMPORTANT NOTE: match registers A-M are CASE SENSITIVE!
match registers N-Z are NOT!
So; ("A10testING" Will ONLY match this string: testING
But: ("N10testING" Will match any of these: testing, TESTING,
TESTing, testING,
tEsTiNg, TeStInG.
Either one would start key F10 executing upon a match.
")" - this UNSETs a watch string. Syntax is: )A
where A is 1 character, A-Z, upper or lower case.
Once unset, this watch will no longer be functional until
another SET operation occurs for it.
"@" - this turns the capture buffer on and off. It is followed by
a quoted string; ie: @"df0:capfile" this would begin to
capture to the file df0:capfile. To turn capture off, use
this syntax: @"" that will close the capture file.
"*" - This sends a string to the narrator, the printer, or the
screen. The string can be either plain ASCII text followed
by a quote, or it can be a 'handle' as recieved by the
program on a recent line. Syntax is as follows:
*"yxSTRING" where 'x' can be one of the four
following options, upper or lower case:
S - Speech; Text sent to the narrator.
W - Window; Text sent to the window.
P - Printer; Text sent to the narrator.
O - Output; Text goes to CIS, out serial channel.
and where 'y' is an OPTIONAL field that can be one
of three things;
if an '+', then the text is taken from
the LAST input line from a CO level line.
If an '-', the text is taken from the LAST
input line from a /sen level line.
if an ':x', the 'x' is a parameter a-z or A-Z,
a numeric register - the text will be "43" if
the value in the register is 43.
If you use the y option, then the STRING portion
is omitted, as the string data will come from internal
registers.
"\" - This loads a new .config; you can use it to run sequences
of function keys limited only by disk space. Syntax:
\NN"filename" (.config is added automagically)
Where NN is the function key to be started after the load
completes. If you use 01-20, then the specified function
key will be started immediately after the new config is
loaded; if you use '00' there, then the config is loaded,
but no key is started. Any other value will cause an
error condition.
"[" - This initializes the User-definable gadget window.
it has one parameter, a file name; use it like this:
["path/filename.extension"
This will cause CoComm to attempt to read a control file
that contains ascii text in a certain format, and if it
is successful, a window will be initialized (not opened,
though) with the gadgets specified in the control file.
You may then use the '{' and '}' functions to open and
close the window, respectivly. Here is the format of the
file, as demonstrated by an example:
Gadget Window Title - window title
03 - number 01-20 (how many gadgets)
05FKEY #5 - key number 01-20, 21-40, or 41-60
09FKEY #9 - key number 01-20, 21-40, or 41-60
20FKEY #20 - key number 01-20, 21-40, or 41-60
You may have only as many gadget def lines as the number you
specify under the window title line; Gadget text names are
limited to ten characters; All numeric parameters MUST be
two digits; And you MUST have as many gadget definitions as
you specify on line 2, or the initialization will fail.
Using the range 1-20 to specify the fkey to execute will
cause the text in the gadget to be color #1; Using 21-40
will cause it to be color 2; and using 41-60 will cause it
to be color 3. Put a little differently, pick an fkey 1-20.
then, for color 2, add 20. Or, for color 3, add 40.
"{" Opens the window initialized by the '[' function, described
previously.
"}" Closes the window initialized by the '[' funtion, described
previously
"]" - This allows you to set up the communications parameters
from the macro language. Syntax is as follows:
]"DWPSBBBb"
where (D)uplex may be (F)ull or (H)alf
(W)ord may be (8) or (7)
(P)arity may be (O)dd, or (E)ven, or (N)one
(S)topbits may be (1) or (2)
(BBBb) is a baudrate specification, all of the
following are legal:
000 0000 0300 300 1200 2400 9600
the zero value is a special value -
it means "Don't change the baudrate"
examples:
]"F8N11200" ]"H7E1300" ]"H7E10300" ]"f7n2000"
"=" - This initiates CoComm functions. You place a single
character after the "=" character, and it performs a
function. These characters may be upper or lower case.
="string" Arexx macro (without use of double quotes allowed)
=ESCstringESC ARexx macro (Quotes allowed in string)
=A "Ai Co Mode On"
=B "Buffered Chat window On"
=C "Close Chat window"
=D "Disable Ai Co Mode"
=E "Emit chat buffer contents"
=F "Flash screen"
=Q "Quit CoComm"
=R "Review Buffer to Front"
=S "Workbench Screen to Front"
=U "Update /sen list"
=W "CoComm Windows to Front (activated)"
NOTE: if the Chat Window is open, then it
is the window that gets activated; If not,
then the main log window is activated.
"+" - This controls a 'beep' feature. It has two three-digit
numeric parameters; Use it like this: +"xxx"yyy"
The 'xxx' parameter is the duration of the note; the
larger, the longer it lasts. The 'yyy' is the period, or
tone of the note; the larger, the lower the tone.
"&" - this controls the send file feature. It is followed by a
quoted string; ie: &"df0:sendfile" This would send the
complete file to the serial output. Filename required.
Operation can be halted by a control C.
"$" - this, when placed before another of the special characters,
causes that character to be emitted normally; IE,
putting $| in a macro will send the "|" char, not a new line.
"?" - Followed by a quoted string, this implements a DOS execute
facility. Use like this:
?"NewCLI"
All I/o is to/from the 'nil:' device, so if you need text
output, you'll have to make a newcli and go from there.
The return code from the command is placed in numeric register
'Z', and so can be tested for zero or non-zero results.
":" - this is a numeric register control command; you follow it with
a register A-Z (not case sensitive) and then one of four
items; '+', '-', 'L"number"' or '0'. The + increments
the register, the - decrements it, the L"number" loads it with
the number, and the 0 clears it. So, you could say: :p0
and that would clear register P. You could say, :T+ and that
would increment register T. You could say, :uL"45" and that
would load register U with the value 45. values can be up to
six digits in length, 1 digit minimum. You use these in
conjunction with the "#" jump and "!" call operations,
described next.
Numeric register 'Z' is used by the ?"" execute statement;
the return code from the executed command is placed in the
'Z' register so you can test it and control the macro execution
based on the results.
"#" - this means that the next two chars choose another macro key;
ie; #03 will start key F3 executing.... use 01-20. This is
a "jump" operation; meaning that once this has occurred,
the key with the #nn instruction will NOT resume operation.
Optional conditional jump uses another set of syntax;
if the '#' character is followed by one of the following four
characters: :, ;, <, or > and then a letter a-z or A-Z,
then the jump will only occur if that numeric register is ZERO,
NONZERO, LESS THAN ZERO, or GREATER THAN ZERO. Used like
this: #:q03 This statement says that IF numeric register Q
contains zero, THEN we jump to key number 3. Otherwise, execution
continues in this key. If you say, #;t04 this means:
IF numeric register T is nonzero THEN we jump to key number 4.
if you were to say #>b05 then key 5 would be executed IF
register b was greater than zero... if it was zero or less than
zero, execution continues in the current key. If you were to say
#<x11 then key 11 would be executed IF register x was less than
zero; if it was zero or greater than zero, execution continues in
the current key.
"!" - this means that the next two chars choose another macro key;
ie; !03 will start key F3 executing.... use 01-20. This is
a "call" operation; meaning that once this has occurred,
the key with the !nn instruction will resume operation as long
as the key that was called does not cause an abort for some
reason. There is no corresponding return statement, except
in a (%)compare... called keys return when they complete, IF
they complete, or when a (%)compare fails that has a "B"
specification in the fail field.
Optional conditional call uses another set of syntax;
if the '!' character is followed by one of the following four
characters: :, ;, <, or > and then a letter a-z or A-Z,
then the call will only occur if that numeric register is ZERO,
NONZERO, LESS THAN ZERO, or GREATER THAN ZERO. Used like
this: !:q03 This statement says that IF numeric register Q
contains zero, THEN we call key number 3. Otherwise, execution
continues in this key. If you say, !;t04 this means:
IF numeric register T is nonzero THEN we call key number 4.
if you were to say !>b05 then key 5 would be called IF
register b was greater than zero... if it was zero or less than
zero, execution continues in the current key. If you were to say
!<x11 then key 11 would be called IF register x was less than
zero; if it was zero or greater than zero, execution continues in
the current key.
";" - This invokes a standard intuition style requester. You supply
a function key number that may be executed in some cases, and
four text strings. If the user presses the left button
(Which matches string #3) then the function key continues
execution; if the user presses the right button on the
requester, then the function key named in the function is
started up. Syntax is as follows:
;NN"1st line"2nd Line"Positive Text"Negative Text"
The first parameter (NN) is a function key number. If the
user presses the right button in the requester, then this
function key is jumped to and execution begins in it.
You MUST supply all four text strings, especially the text
for the positive button and the negative button. Example:
;"No Mail - proceed to"next operation or quit"-Proceed-"-Quit-"
The first two strings are limited to 80 characters; the positive
text and the negative text are each limited to 20 characters.
"%" - this is a combination string match/timing controller;
it compares a string against incoming data; if the string
matches within the specified time, then execution continues
in the same key at the next item. If it fails, then the
operation specified in the "fail field" is performed.
syntax is as follows: %"xSTRING"VALUE"
where:
"x" is required: it is the "fail field", and can be:
(upper or lower case) any of the following items.
The fail field tells the compare what to do if the
compare fails.
R - which will Restart the key if it times out
S - which will Stop the key if it times out
C - which will Continue the key if it times out.
Knn - where nn is a macro key number to be
executed if this times out. (Jump)
See the "#" cmd for details on jumps.
Pnn - where nn is a macro key number to be
executed if this times out. (Call)
See the "!" cmd for details on calls.
B - go back to calling key... if key was
called, and this compare fails, then
control returns to calling key. If the
key was NOT called, then execution
terminates as with the "S" option.
STRING is an optional text string, which, if matched
within the time specified by the VALUE field,
will cause the key operation to continue.
VALUE is an optional positive number, representing
representing 10ths of a second, that is used
to limit the amout of time that the STRING is
checked for a match.
The quotation marks are absolutely required!
The operation of the "%" command can be aborted during
a wait by pressing the CTRL and C keys together. A
requester is presented, and you can select ABORT or
CONTINUE. ABORT will stop the key from doing anything
else. CONTINUE will do the _next_ operation in the
function key - not continue the wait you interupted.
Here are some examples of the "%" command's use:
%"sCONNECT 1200"200" -- waits for 20 seconds, checking
for the occurance of the string
"CONNECT 1200". If not found in
20 seconds, the key stops running.
%"cCONNECT 1200"200" -- waits for 20 seconds, checking
for the occurance of the string
"CONNECT 1200". If not found in
20 seconds, the key continues
running.
%"rCONNECT 1200"200" -- waits for 20 seconds, checking
for the occurance of the string
"CONNECT 1200". If not found in
20 seconds, the key starts all
over again. See the example below
for a practical reason to do this.
%"c"" -- Doesn't do anything, just
continues.
%"K04test"100" -- Starts macro key F4 if the string
"test" is not received within 10
seconds of starting the "%" cmd.
%"sMOO"" -- checks the next four characters
against the string "MOO". if they
are matched, it will contine. You
can only stop this by pressing the
control and C keys together, as
there is no timeout value.
%"c"200" -- Waits 20 seconds, then continues
Here is a complete key definition that will keep dialing a number until
it connects - and then log you into CIS. (handy, eh?)
~*"o+++"~AT H0|%"rOK"ATDT 555-1212"%"rCONNECT 1200"200"%"sName: "200"CIS|
(the following line is the rest of this same key)
%"sID: "200"72667,1321|%"sword: "200"YOUR.PASSWORD|%"k02Amiga Forum"600"
This definition will not only log you into CIS, but will start function
key F2 executing if you are not in the amiga forum within 1 minute after
CIS takes your password. Which might be to hang up, or look at email, or
whatever. Depends on how you have CIS setup to handle your log on.
Although not a complete scripting capability, these features of the
macro key processor are enough to automate almost any concievable log on,
log off, or any other reasonably set operation.
Two complex function key definitions are supplied in the default.config
in the distribution ARC file. F11 (shifted F1) will call CIS, and if CIS
sends you to the AmigaForum (which it should if you have no email waiting)
it will proceed to open a file and read thread new through all the new
stuff, then close the file it created and log off, then hang up. Not bad
for a macro key, eh? F15 (shifted F5) will call CIS and get you in through
all the ids, names, ppns and all of that. You can customize these very
easily. First, change the phone number in the front of the key def (unless
you live near me!) Then replace "YOUR-PPN" with your CIS ppn #. Then
replace "YOUR.PASSWORD" with your CIS password. Then these should work.
Note that the F11 key opens a capture file on df0:... either change it to
where you want it, or put a disk in there with some room!
To clear a sen entry in the sen window, hit FlushOne and then press the
arrow gadget to the immediate left of the entry you wish to delete. If
you wish to cancel the operation, just close the window after you hit
the Flush one gadget but before you hit the arrow gadget of any entry.
There are two menu functions that affect sens. One turns the sen operation
on and off, the other is handy for when you have /sen't a line to
someone and you meant it to go to the normal co level, in public.
This function allows you to retransmit your last line. Simply change to
the other mode (Amiga/d) then retransmit (Amiga/e).
When you are using /sens with another individual who has CoComm, and they are
in AI Co mode, you can cause text to be underlined, italicised, or
boldfaced. You can do this in any combination, and without worrying about
what it looks like to others in Co. To underline, place the '_' character
before and after the word or group of words you want underlined. To Boldface,
use a '*" before and after the group or word. To Italicise, use the reverse
apostrophe: '`' Like this: I did _NOT_ do it! The "NOT" will be underlined.
In the locator window, you can put anything before the ppn as long as it does
not contain a ":" character. This is used to tell cocomm where the ppn
starts.
F11 through F20 are shifted function keys F1 through F10.
CoComm supports the "Quick" B protocol - files uploaded from your
computer will not have to be "chopped", and files downloaded may
not have to be either, depending on whether they were uploaded
with B or QB protocol.
To use QB protocol, follow the prompts in the data library; no action
is required by you inside CoComm, other than to answer the questions
CIS asks you. All file transfer operations are fully automatic.
Simply Choose the "B" protocol option at the prompt where that option is
a choice; CoComm will inform CIS that the version of B proto to
be used is the Quick version.
You can observe the progress of the transfer in the window CoComm opens
for that purpose. For Uploads, since CoComm knows all about the file
in question, a larger window with more data is displayed. For Downloads,
only the number of blocks, retrys, and file name are shown. However,
If you notice the size of the file in the DL description (it's there)
you can type the number of bytes into the DL status window, and it will
give you a running time estimate of dl'ing time.
If you wish to abort a quick B transfer, 'hit' the transfer status window's
"close" gadget. After a moment, the transfer should complete.
If (Especially at 2400 baud) the Quick B transfer seems to "hang up", click
in the log window and type a ^U -- several times, if needed. This should
get CIS to continue the transfer. Apparently, there are problems with CIS's
2400 baud handling that can cause this. CoComm does absolutely nothing
different at 2400 baud; nor is it missing characters or something like that.
It is CIS's problem entirely.
Speech! works fine, play with, enjoy.
CoComm sleeps; this means that when it is not busy, other Amiga tasks can
run full speed even while the CoComm window is open and active.
Only when CoComm is processing data does it use system CPU time.
When the chat window is open, the log window is still active - this is
important - if you are sen'ing somebody using the auto-sen capabilities
of cocomm, then ALL input to the chat window goes to the person you are
senning. If you type into the log window (just click in it), then
unbuffered input begins immediately... you can carry on normal co level
communications in the log window while you carry on a sen conversation
in the chat window.
There are a number of control chars you can type into the chat window; First,
ctrl H, or the backspace key. Ctrl X, which will cancel the line you
have in the window, and ctrl W, which will cancel the last word if you
are at the end of the line, and the current word if you are within the
line. The chat window has some editing capability. pressing the left and
right cursor keys will move the cursor through the text. The delete key
will delete the character under the cursor. The backspace key will delete
the character before the cursor. SHIFT/left arrow will put the cursor
at the beginning of the line. SHIFT/right arrow will put the cursor at
the end of the line. SHIFT/up arrow will put the cursor at the next
word. SHIFT/down arrow will put the cursor at the previous word.
Review Buffer: This option is fairly straightforward. In order to use it,
you first open the buffer. Then tell CoComm how many lines you wish it
to reserve in the buffer. This is an important decision; If you choose
100 lines, and the conversation you wanted to review was 105 lines long,
then you will lose the first five lines. try to be generous... You won't
regret it. When the Review buffer is saved, it is saved in an editable
format as a normal Amiga ascii text file. Likewise, when you load the
Review buffer from a file, it expects a _text_ file... don't go trying to
shovel in some binary file! The review buffer is a "concurrent" window;
it co-exists peacefully with the main window(s). You can specify a
default situation for the review buffer in the prefs window. You can
choose it to be opened and allocated, started or stopped, and shown or
now shown. If you save the .config file while the review window is
actually allocated and the window open, then the window's size and
position will be saved as well. So, (for instance, GreG!) if you want
the review buffer active all the time, and of a particular size, then
select start, open, and showing; as well as specifying the default
number of lines to allocate (at 140 bytes of memory / line). CoComm
will allocate the review buffer when it starts, and it'll be there
all the time unless you turn it off. You can use the cursor up/down keys,
unshifted, any time the review buffer window is open to scroll the
text in the review window.
NOTE: When you use the capture facility, PLEASE do not put files in the
ram: device! For that matter, don't run CoComm there, either! Why? (I
hear you cry) Because ram:, also known as Blowup.Device, is unreliable,
tends to flake your system, and definitely can crash CoComm. RAM: should
never be used for anything, if you can avoid it! Since you're planning on
using CoComm, you must be a CIS subscriber - so go to the data libraries
and download ASDG's VD0: device. It is _far_ better than the CBM
supplied ram: device, won't blow up, and furthermore can retain your
data through a warm boot if you have expansion memory. Get it!
Doubt me on ram:'s instability and general reliability? go to any CLI
and type the following;
dir "Ram Disk:"
But don't do it with anything important in the machine - because you're
going to visit the Guru as soon as you hit return. There are LOTS of
other known problems with the ram: device. Don't Use It!
The terminal type used here is ANSI - both of the windows used for
communications in cocomm are Amiga console devices;
As far as performance goes, CoComm is fairly ambitious in the way it
is structured. The Amiga console devices, while very nice, are not what
you would call high-performance. Running two of them, as well as the
serial channel and the usual Intuition stuff is a fair demand on the
computer. You may experience some performance degradation when running
other programs at the same time, though in general I have seen few problems.
A technical note - CoComm inherits the priority of the CLI it was
started from, so if you have a CLI with a priority of 1 or more,
then CoComm will perform better when run with other programs.
You can also, if you started CoComm from the CLI, use the SetPri
program (also by SoftCircuits - FreeWare on CIS in DL9) to change
CoComm's priority to anything you like. Feel free to experiment
with it.
I'm Ben Blish - I spend a LOT of time on the Amiga Forum. I like CIS,
I like the people I meet there, and I'll probably see you there.
If you have suggestions, please leave them for me on the forum -
NOT in EMAIL. I HATE EMAIL! When you see a msg from me, simply
reply to it using the UA option, which will let you rename your msg.
You can also give me suggestions in co... assuming I'm there, of
course.
If you meet any pirates, kick them in the... I mean, explain to them
that they're misdirected.
Remember - this is shareware - you want more? send 15.00 to us at:
SoftCircuits, Inc.
701 Nw 13th Street, Suite C4
Boca Raton, Fl
33432
If you can't afford it, that's ok. Use it anyway, and enjoy!
Special thanks to Keith, who helped debug the original standard
B proto code; It would have taken much longer to get the first version
of CoComm up to the point where it could have transferred files
without his knowledge and experience with CIS.
Quick B protocol was implemented using methods provided by Compuserve's
Russ Ranshaw, converted to generic 'c' code by Paul M. Resch, and
modified to work in CoComm by myself.
Thanks to Anne, Larry, Doug, GreG, Jim, Steve,
and all the co'ers who have been involved in supplying
rude remarks... I mean, constructive feedback on
the life and times of CoComm.
Actually, Anne never says anything rude. But Doug, now...
of course, HE tries to run two term programs at one time,
so who's gonna listen to him? Not only that - he has been known
to use an 8k stack!
Ben Blish, For SoftCircuits, Inc. Dec 28th, 1987
CoComm/CBB
* Update history from 3.11:
3.11 : polished review buffer, flicker gone;
review buffer arrows auto-repeat;
chat buffer editing added;
review buffer now concurrent task;
Review line length changed from 255 to 140
3.12 : review window gadgets now auto-reselect the chat or log
windows, whoever was active when review buffer gadgets
were hit.
+ CoComm can now run even if Narrator/translator
stuff isn't available to it.
3.13 : bug fix - review buffer trashing system memory lists
3.14 : 16 line history for chat window;
+ ^R char swap in chat editing added.
3.15 : numeric register handling added:
inc,
dec,
clr,
load,
print,
jump,
call;
+ Macro key error handler now includes key ID that caused the
exception;
**** : no version 3.15->3.99
4.00 : Compiled with Lattice C ( lost 15k in the process! )
4.01 : Parity problems fixed - parity settings are now correct,
my fault, sorry! One consequence of this is that you
MUST sign on to CIS with the following settings if you
are going to download or upload:
8 Bits
1 Stop bit
No parity
7e2 works, but CIS doesn't like it for file transfers.
+ Small bug, filerequester sorting OLD lists of data before
it read in the new lists, fixed. Now sorts only when it
has new info.
+ Both the /sen manager and the Locator will now function
outside of the Co area; however, the locator provides
different info outside of co - beacause of the way the
forum software works, you only get some information
about the person - last time on - not where they are.
Sorry, but that's the forum software for you.
+ 4.00 had QB download problem, engendered by the use of
the new Lattice 4.0 compiler - fixed now.
+ Download abort now works;
+ Aborting uploads will no longer leave the file open;
+ You can now specify a CUSTOM screen for CoComm to open
into. You cannot change from a custom screen back to the
workbench, or vice-versa, while running. Choose the
desired option in the preferences window, and save the
default.config file... from then on, CoComm will use
that screen option.
+ Additional Screen option: "Lace", short for interlace;
you can specify that CoComm open the CUSTOM screen as
an interlace screen, for 400 or more lines of video.
CoComm should use the same standards as your workbench
screen - that means if you have extra rows, or columns,
via morerows or PAL, the custom screens CoComm creates
should also reflect that. The interlace switch also
only takes effect when CoComm first starts.
4.02 : Filerequester modified for much faster sorting of file
lists, dir lists, and root lists.
+ Filerequester "OK" message now includes file/dir/root
counts for your convenience.
+ Review buffer now clears and displays immediately after
a LOAD review operation (Dunno how I missed THAT one!)
+ When a load review buffer operation would overfill the
review buffer, the notice requester indicates how many
lines bigger than the buffer the file was. allowing you
to intellegently re-allocate the buffer, if you desire.
+ Review buffer load would always leave one line from the
previous contents in it - no longer.
+ In v4.01, if you opened an interlace screen, then modified
the Prefs settings for non-interlace, saved them in the
default.config file with your windows in positions that
are not acceptable for a non-interlace screen, CoComm
would be unable to restart using that default.config
file. Now fixed - you can even use those .configs that
didn't work... they'll be ok now. Sorry. <grin>
4.03 : This revision adds the ability to use color highlighting on
individual words and phrases. Using an exclamation point
followed immediately by a numeral (1,2, or 3) will cause
the color of the text in Ai Co mode to be changed. The "!1"
color is the default; You use a !1 to return a phrase to
the original color of the Co Text highlight. Use !2 and
!3 to make the text appear in the other colors. This feature
can be disabled in preferences, if you don't want others
able to control your color set. These text options cancel
themselves at the end of each line, so there is no problem
with sending up a phrase like this: "!2Hi, Mom."
4.04 : Fix for "Transmit File" operation. Incoming text characters
during a transmit operation were not filtered, so it was
possible for your screen to go into the ALT character set;
looked like crud, and impossible to read, if it happened.
Fixed now.
+ Extensive rework on the other transmit options; the &"" option
in the macro keys, and the review buffer transmit as well.
+ Added preferences gadget for disabling the color highlighting
feature - supposed to be in 4.03, but I forgot to do it.
+ Not a feature of 4.04, exactly, but good to know about:
An ARC file has been created that contains a nifty automatic
HELP generator for you to use with other people in CO;
the file creates a string of requesters that send your
choice of HELP files to the user in Co; Really a super use
of the macro keys. Included is a complete explanation
of how to use it.
4.05 : Xmodem standard (as opposed to Xmodem CRC) file transfer
protocol has been added; this allows CoComm to be used for
Amiga->Amiga transfers, and of course almost any bulletin
board will support xmodem; You can now use all that macro
power on other systems! (limited distribution Version)
4.06 : *"sSPEAK TEXT" string output variation had a bug where
calling it multiple time quickly in succession would cause
a GURU, due to faulty code that was SUPPOSED to be checking
to see if the last speech command had completed but wasn't.
all fixed now.
+ Xmodem CRC added... an additional protocol for use with
more sophisticated BBS's and networks.
+ Additional support for 7-bit use; some internal routines
were still seeing the 8th bit, missed it because I never
run 7 bits, myself. Sorry.
+ Added Echo/No echo for CoComm -> CoComm/other term use.
+ Added Half/Full duplex
+ Added Incoming C/r = C/r OR C/r-LF
+ Added Outgoing C/r = C/r OR C/r-LF
4.07 : Both Xmodem AND Xmodem-CRC had nasty bug on receiving files
due to XON/XOFF problems throughout CoComm, my mistake. This
has been corrected... The problem manifested itself as the
program's tendancy to swallow the first $11 character that
came along - if you dl'd a text file, you couldn't get past
block 16, because the protocol sends a $11 at the beginning
of block 17.
+ Related to the above problem, you can now type ^S and ^Q
(XON/XOFF) into the log window and they will be sent as
you would expect - CIS (and other systems) will respond
appropriately.
+ Doug: The Prefs window has a new item in it; It's a text gadget
called "Pass:" You enter into this gadget all the control
characters that you want to pass "through" the chat window; For
instance, on CIS, the following control characters are used often:
^C - Aborts the current operation completely
^P - Aborts the current operation locally
^S - Stops output to your screen until ^Q
^Q - Resumes output after ^S
If you type SQCP into the "Pass:" gadget, then any time you
type ^S, ^Q, ^C, or ^P into the chat window, the control
character will be immediatly sent on to the host. Note that
you can change these characters to anything - and that this
function take precedence over standard chat functions; For instance,
^R normally swaps the characters under the cursor in the chat
window; if you enter an R into the Pass: gadget, then typing
a ^R will only send the ^R on to the host system - NOT swap
the characters anymore. Use judiciously. any or all of the 32
possible control characters may be placed in the Pass: gadget;
it scrolls to accomidate more than fit in the little window.
Order does not matter, nor does lower/upper case.
00-@ 01-A 02-B 03-C 04-D 05-E 06-F 07-G 08-H 09-I 0A-J
0B-K 0C-L 0D-M OE-N 0F-O 10-P 11-Q 12-R 13-S 14-T 15-U
16-V 17-W 18-X 19-Y 1A-Z 1B-[ 1C-\ 1D-] 1E-^ 1F-_
4.08 : For v4.08 there is an entirely new function, one that allows you
to open a window with from 1 to 20 gadgets in it; You control
the text that appears in these gadgets, and how many there are.
Each of these gadgets can start a function key; The whole
thing is controlled by a "define" file, that contains plain
ASCII text you use an editor to build. Details are available
in the macto key function explanations.
+ The cursor in the LOG window is now automatically turned off
when you are using the chat window; It only appears when you
are using the log window directly.
4.09 : the gadget window added in 4.08 would not open into a custom
screen - fixed now.
4.10 : Review Buffer window will now shrink somewhat further - in
response to some careful critisism.
+ The gadget window now has the ability to have user-specifed
colors for the text in the gadgets - this allows you to
highlight the items you consider of overriding importance.
You modify the number of the fkey in the beginning of the
line for colors: Use 01-20 for color 1, 21-40 for color 2,
and 41-60 for color 3.
+ CoComm can now optionally execute an fkey when it is started;
to choose an autostart fkey, enter a number from 1-20 in the
"AutoStart" gadget in the prefs window and save as the
Default.config file.
+ CoComm will now remember where you last "parked" the gadget window,
so if you close it, it will re-open where it was when you closed it,
instead of always starting in the same position.
+ Somewhere b4 this rev a bug crept in that would not allow you
to change the serial parameters except at startup; That's
fixed, you can now select the baud rate, parity, and stop bits
on the fly at any time w/o quitting CoComm.
4.11 : To the macro language, added the ']' statement - this allows you
to set the communications parameters from a macro key operation.
This addition makes the phonebook concept now 100% viable using
the gadget windows and macro keys. Examine the phone.config
F11 key for an example of it's use - there, it sets you to
8N1, Full duplex, and does NOT change your baud rate... Thus
ensuring that your protocol transfers with CIS operate correctly.
+ added the simple quoted string serial output; To send any text
except a double quotation mark, simply enclose it in the double
quotes, like this: "send this text"
+ bug fix: macro keys that had a comment at the end would not
'return' when 'called' from another key - fixed now.
+ default.config demos restructured to use phonebook gadget window,
meta funtion that calls CIS (in phonebook config, now) also
restructured for easy modification by the new user.
4.12 : QB proto auto-sense disable added for use of the CoComm program
on systems that do NOT handle the QB protocol - IE, anywhere
but CIS. <grin>
4.13 : Added a menu for use in handling the '.def' files; It kind of
offended me that you had to use a text editor to prepare them;
It 'feels better' to be able to handle everything right from
CoComm. Available menu options are save, load, and edit. The
Load function automatically opens the editor.
4.14 : Added a DOS Execute function to the macro language; the '?'
character is used for it. The return code from the command
is placed in numeric register 'Z'.
+ Added some other conditions to the conditional jump and call
facilities. Previously, you could jump or call (using numeric
registers) on zero or non-zero conditions; You can now also
jump or call on greater than zero and less than zero conditions.
This was added because it was observed that some commands returned
a negative return code, and you may need to be able to test
for that in order to handle it properly.
4.15 : linked with Lattice 'cback.o', removes extra window upon workbench
startup.
+ Review buffer would not remember it's size and position if it was
closed by re-selecting the Review Open option, or with Right/Amiga/0,
the equivalent Amiga key sequence. Fixed now, both methods work.
+ Window Titles for both of CoComm's operating windows changed to
reflect buffered/unbuffered status.
4.16 : Internal revision - not released
4.17 : Added smooth scroll to review buffer. Selected via menu item in
Project menu.
+ User-defined gadget window has been rearranged to take much less
vertical space. Your old define files will still work, they'll
just show up a little differently on the display.
4.18 : Added 'E' option to '=' command. This option causes the chat
window buffer to be terminated and emitted to the serial
port, as if you had typed a c/r and completed the line manually.
This may be used to make the last line in a message go out when you
have a programmed signoff in a macro key, for instance.
4.19-4.99 were reserved or unused revisions - not released
5.00 : CW Send menu select - translates what you type in the chat
window to morse code. Why? Anne and I wanted it. <grin>
+ Nasty bug that caused CoComm to trample low memory has been
squashed. Ahhhhh! Finally!
+ Crunch menu select - Also from the chat window, takes the text
you type and does two things to it - First, it removes any spaces
typed, and second, it capitalizes the first letter of each word.
it would turn "sample sentence" into "SampleSentence" for instance.
Again, I wanted this as it's fun to bug people with in Co. heh heh heh.
+ Line control (Normal/One Blank/No Blanks) - This option is used to
make CoComm strip incoming blank lines out of the display. They still
go into the review buffer or capture file, but you won't see them
in the main window. This is a great convenience when someone has been
thoughtless enough to just FILL a message with blanks, which can make
it scroll off quickly, especially at high baud rates.
+ SEN operations in non AI co mode (in other words, at normal forum
levels) no longer send the colored line - that was causing some
confusing looking displays. The sens are sent as normal text only
now.
+ ARexx interface added. This is a biggie - It's a simple interface,
but one with great possibilities. If you don't have ARexx, you won't
need to worry about this - but you SHOULD have ARexx - it's
immensely powerful, and it's fun, too!
ARexx port name is "CoComm_Port" so for external scripts, you
would use: address 'CoComm_Port'; as the ARexx command to
attach a script to CoComm. As for internal macros (details on
how to do those follows), CoComm is a full-fledged ARexx host,
and so when you invoke an ARexx macro from within a CoComm
macro key, the address is already set to CoComm_Port, there is
no need to use that in the script. On the other hand, it doesn't
hurt anything. The issue here is that if you're defining a macro
that exists complete within a key (as a quoted string) then,
since the space in a macro key is limited, you don't want to
have to use any extraneous commands.
To place an ARexx macro within a CoComm macro key, you use the
'=' key indicator along with the escape key. In the following
description, the letters ESC refer to one press of the ESC key,
NOT the three letters E, S, and C.
To place the word Testing on the screen, enter the following
into a macro key:
=ESC"msg 'Testing'"ESC
This can be used anywhere in a macro key with other CoComm
macro functions.
The reason the ESC key was used instead of the Quote keys is that
ARexx takes considerable meaning from either of the quote keys,
and we wanted to leave them free for you to use in the ARexx
macro. On the other hand, the ESC key can be generated in ARexx
by the use of a hex literal, so nothing lost there.
If you like, you can use the Double quote instead of the ESC key,
but in that case you may not use the double quote in the actual
macro. This is also a valid CoComm/ARexx macro:
="'msg testing'"
We suggest you use the ESC syntax, however.
Commands available for use in ARexx macros with CoComm:
CLOSE - terminates CoComm immediately
MSG <string> - sends text to unbuffered window.
SEND <string> - sends text out modem.
SCAN - returns text in rx buffer
SETSTEAL <macro name> - starts steal, sets macro to call on steal.
this macro must use the SCAN operation
to read the text which is ready.
CLRSTEAL - turns off steal mode
The ARexx interface is still under development; Let me
know of any suggestions you may have for it. If you have questions
on how the steal operation is supposed to work, ask me on
the forum, either in AmigaVendor or AmigaTech. The SCAN
operation may act a little strange at times - still working
on it.